We hereby claim under 35 U.S.C. xc2xa7119(a)-(d) priority to the application GB 0009487.0 filed in Great Britain on Apr. 17, 2000.
1. Field of the Invention
The present invention pertains to generating notifications of events and, more particularly, to a method and apparatus for evaluating queries against received event information.
2. Description of the Related Art
There is a general demand for services which will notify a user when specified events occur. One specific commercial demand for such services is in relation to the stock market, where it is possible to make significant profits by responding to events quicker than other players in the market even where there is general agreement as to the best action to be taken.
In the past, automated systems have been proposed to allow users to identify particular events of interest. The system is then provided with relevant data regarding events taking place in real time. When the events with which the system has been provided are identified as matching the criteria set by users, the users are notified that this has occurred.
Such automated systems have operated in the past by taking conventional database management systems and employing them to generate event notifications.
Database management systems have been employed because they are designed to store and sort through large quantities of data. The way these systems operate is that when a query is received from a user, the database management system sorts through the database to see whether the query can be answered by the stored data. In the past, it has been proposed to apply such a database management system to automatic notification generation by storing the received event information in a database and searching the database for each of the queries. When the search through the database identifies event information matching a query, a notification is generated.
There are a number of problems with this approach which arise because the data held in the database changes continuously as events are received. Firstly, because the data held in the database is continually and unpredictably changing, it is necessary to repeatedly search through the database for each query until the query is resolved. The repeated searching through the database for each query is very demanding of system resources. As a result, as the database of events and the number of queries for which notifications may be required increases, it becomes increasingly difficult to ensure that notifications are sent out quickly.
Also, all of the received event information must be stored in the database before it can be sorted through, making further demands on system resources.
Further, conventional database systems are not an effective method of resolving time based or temporal queries. That is, a conventional database system can answer a query whether two or more events have occurred but cannot easily answer a query whether two or more events have occurred in a specific sequence or within a time frame. Although the time based information required to allow such temporal queries to be answered can be stored in a database, it must be stored for all events because the content of registered queries is not known when the events are stored in the database. This requirement to store time data for all events stored in the database further increases the size of the database and the time and system resources required to make searches.
Finally, because events may be the subject of time based queries, all events stored in the database must be retained for a sufficient time to allow all time based queries to expire. This period cannot be predetermined before queries are made, so it is necessary to either set an arbitrary limit on how long data will be held in the database or store all data indefinitely so that a very large amount of redundant data must be retained in and checked by the database. Clearly, both of these alternatives are undesirable.
The present invention is directed to resolving, or at least reducing, one or all of the problems mentioned above.
The present invention provides, in one particular aspect, a method of evaluating queries against received event information and generating notification that events specified in the queries have occurred comprising the following steps: recording a number of queries; receiving an item of event information; comparing the received item of event information with the queries; and generating a notification if the item of event information matches the query.